Вариант: 2
Решил: Тараненко Олег {a.k.a Exidler}
Группа: 112
Проверяющие: Бордаченко и Матвеева
Оценка: 5
{баллов 48, но все найденные проверяющими ошибки исправлены}


1.
а) Машинное слово - содержимое ячейки
б) Непосредственный операнд - операнд, значение которого указывается в команде.
в) Дальний переход - межсегментный переход.


2.
Команды выполнятся за 22 единицы времени.


3.
SF=1, CF=1, OF=0


4.
mov BL, S
xor bh, bh
mov al, S[BX]
cmp AL, 'S'
jne @fin
dec S
@fin:

5.
mov bp, sp
mov ax, a
mov es, ax
xor bx, bx
@loop:
mov al,[bx]
mov es:[bx], al
inc bx
inc bp
cmp bp, 1001h
jae @done
jmp @loop
@done:

6.
JDIF macro LV,M
local @exitm
irp P, <LV>
 if (type P) eq BYTE
  cmp AL,P
  je @exitm
 endif
endm
jmp M
@exitm:
endm

7.
????

8.
public Q
CODE segment
assume CS:CODE
Q proc far
push BP
mov BP ,SP
push DS
mov BX, [BP+8]
mov DS, BX
mov BX, [BP+6]
mov AL, [BX]
mov CL, 103
mul CL
mov [BX], AL
pop DS
pop BP
ret 4
Q endp
code ends
end 

9.
а) Общие имена - такие имена, к которым можно обращаться из других модулей. В отличие от других имён, они не локализуются.Кроме того, они заносятся в таблицу общих имён и фигурируют в заголовке объектного модуля.
б) Каждое общее имя, используемое в модуле, должно быть указано в директивах вида: public <имя>{,<имя>}.

10.
Изменится 10h-я строчка, она станет такой: (10) B8 00 44 00.
SS=4400h
SP=0009h
CS=4401h
IP=0000h